package com.cskaoyan.module.wv;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * HomeIndexVo
 *
 * @param
 * @return
 * @2022/4/8
 **/
@NoArgsConstructor
@Data
public class HomeIndexVo {
    @JsonProperty("newGoodsList")
    private List<NewGoodsListDTO> newGoodsList;
    @JsonProperty("couponList")
    private List<CouponListDTO> couponList;
    @JsonProperty("channel")
    private List<ChannelDTO> channel;
    @JsonProperty("grouponList")
    private List<?> grouponList;
    @JsonProperty("banner")
    private List<BannerDTO> banner;
    @JsonProperty("brandList")
    private List<BrandListDTO> brandList;
    @JsonProperty("hotGoodsList")
    private List<HotGoodsListDTO> hotGoodsList;
    @JsonProperty("topicList")
    private List<TopicListDTO> topicList;
    @JsonProperty("floorGoodsList")
    private List<FloorGoodsListDTO> floorGoodsList;

    @NoArgsConstructor
    @Data
    public static class NewGoodsListDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("name")
        private String name;
        @JsonProperty("brief")
        private String brief;
        @JsonProperty("picUrl")
        private String picUrl;
        @JsonProperty("isNew")
        private Boolean isNew;
        @JsonProperty("isHot")
        private Boolean isHot;
        @JsonProperty("counterPrice")
        private Double counterPrice;
        @JsonProperty("retailPrice")
        private Double retailPrice;
    }

    @NoArgsConstructor
    @Data
    public static class CouponListDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("name")
        private String name;
        @JsonProperty("desc")
        private String desc;
        @JsonProperty("tag")
        private String tag;
        @JsonProperty("discount")
        private Double discount;
        @JsonProperty("min")
        private Double min;
        @JsonProperty("days")
        private Integer days;
    }

    @NoArgsConstructor
    @Data
//    category
    public static class ChannelDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("name")
        private String name;
        @JsonProperty("iconUrl")
        private String iconUrl;
    }

    @NoArgsConstructor
    @Data
//    广告ad
    public static class BannerDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("name")
        private String name;
        @JsonProperty("link")
        private String link;
        @JsonProperty("url")
        private String url;
        @JsonProperty("position")
        private Integer position;
        @JsonProperty("content")
        private String content;
        @JsonProperty("enabled")
        private Boolean enabled;
        @JsonProperty("addTime")
        private String addTime;
        @JsonProperty("updateTime")
        private String updateTime;
        @JsonProperty("deleted")
        private Boolean deleted;
    }

    @NoArgsConstructor
    @Data
    public static class BrandListDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("name")
        private String name;
        @JsonProperty("desc")
        private String desc;
        @JsonProperty("picUrl")
        private String picUrl;
        @JsonProperty("floorPrice")
        private Double floorPrice;
    }

    @NoArgsConstructor
    @Data
    public static class HotGoodsListDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("name")
        private String name;
        @JsonProperty("brief")
        private String brief;
        @JsonProperty("picUrl")
        private String picUrl;
        @JsonProperty("isNew")
        private Boolean isNew;
        @JsonProperty("isHot")
        private Boolean isHot;
        @JsonProperty("counterPrice")
        private Double counterPrice;
        @JsonProperty("retailPrice")
        private Double retailPrice;
    }

    @NoArgsConstructor
    @Data
    public static class TopicListDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("title")
        private String title;
        @JsonProperty("subtitle")
        private String subtitle;
        @JsonProperty("price")
        private Double price;
        @JsonProperty("readCount")
        private String readCount;
        @JsonProperty("picUrl")
        private String picUrl;
    }

    @NoArgsConstructor
    @Data
    public static class FloorGoodsListDTO {
        @JsonProperty("name")
        private String name;
        @JsonProperty("goodsList")
        private List<GoodsListDTO> goodsList;
        @JsonProperty("id")
        private Integer id;

        @NoArgsConstructor
        @Data
        public static class GoodsListDTO {
            @JsonProperty("id")
            private Integer id;
            @JsonProperty("name")
            private String name;
            @JsonProperty("brief")
            private String brief;
            @JsonProperty("picUrl")
            private String picUrl;
            @JsonProperty("isNew")
            private Boolean isNew;
            @JsonProperty("isHot")
            private Boolean isHot;
            @JsonProperty("counterPrice")
            private Double counterPrice;
            @JsonProperty("retailPrice")
            private Double retailPrice;
        }
    }
}
